package com.sc.nft.vo.wxPay;

import lombok.Data;

/**
 * @Author：LiGen
 * @Package：com.sc.nft.vo.wxPay
 * @Project：sc_metago
 * @name：Transaction
 * @Date：2024/5/16 19:32
 * @Filename：Transaction
 */
@Data
public class Transaction {

    /**
     *  订单金额
     */
    private TransactionAmount amount;

    /**
     *  微信支付系统生成的订单号。
     */
    private String transactionId;

    /**
     * appid
     */
    private String appid;
    /**
     * 附加数据
     */
    private String attach;

    /**
     * mchid 直连商户号
     */
    private String mchid;
    /**
     * outTradeNo 商户系统内部订单号，只能是数字、大小写字母_-*且在同一个商户号下唯一
     */
    private String outTradeNo;
    /**
     * payer 支付者
     */
    private TransactionPayer payer;

    /**
     * successTime
     */
    private String successTime;

    /**
     *  交易状态
     */
    private TradeStateEnum tradeState;

    /**
     *  交易状态描述
     */
    private String tradeStateDesc;

    public enum TradeStateEnum {
        /**
         * 支付成功
         */
        SUCCESS,

        /**
         * 转入退款
         */
        REFUND,

        /**
         * 未支付
         */
        NOTPAY,
        /**
         * 已关闭
         */
        CLOSED,

        /**
         * 已撤销（仅付款码支付会返回）
         */
        REVOKED,

        /**
         * 用户支付中（仅付款码支付会返回）
         */
        USERPAYING,

        /**
         * 支付失败（仅付款码支付会返回）
         */
        PAYERROR,

        /**
         *
         */
        ACCEPT
    }
}
